在前一篇已經講過了DataReader,那今天就來聊聊DataReader的好朋友DataSet,它是另一種讀取資料的物件。
DataSet一旦連接到資料來源並透過DataAdapter取得資料後,就會立刻離線,並且把獲得的資料放在主機的記憶體裡面,等待日後應用。因為是獨立出來的資料集,所以做任何操作都不會影嚮到真正的資料庫內的資料。
string s_data = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["config中connectionString的name"].ConnectionString;
SqlConnection connection = new SqlConnection(s_data);
SqlCommand Command =new SqlCommand($"SQL語法指令", connection);
SqlDataAdapter dataAdapter = new SqlDataAdapter(Command);//從Command取得資料存入dataAdapter
DataSet dataset = new DataSet()//創一個dataset的記憶體資料集
dataAdapter.Fill(dataset);//將dataAdapter資料存入dataset
foreach (DataRow datarow in dataset.Tables["選擇的資料表名稱"].Rows)
{
//每個資料列的內容
}
//新增一筆資料
DataRow newRow = dataset.Tables["資料表名稱"].NewRow();
newRow["id"] = 999;
newRow["header"] = 111;
dataset.Tables["資料表名稱"].Rows.Add(newRow);
//移除一筆資料
dataset.Tables["資料表名稱"].Rows.Remove(dataset.Tables["資料表名稱"].Rows[1]);
//修改一筆資料
DataRow[] rows = dataset.Tables["資料表名稱"].Select("id=1");
if (rows.Length > 0)
{
rows[0]["id"] = 2;
}
GridView1.DataSource = dataset; //告訴GridView1的DataSource資料來源是dataset
GridView1.DataBind(); //資料繫結
//還有很多種操作方式
1.Connection : 建立與資料庫連接的通道。
2.Command: 下達SQL語法指令。要對資料庫下的SQL語法,必須是要一個物件才能執行,不能直接用SQL語法,所以才要把SQL丟進sqlcommand 這個物件
3.DataAdapter: 取得資料庫資料。
4.DataSet: 創立準備存放資料的記憶體資料集。
5.dataAdapter.Fill: 將取得的資料存入記憶體資料集中。
6.就可以使用dataset來做很多種操作了~(≧▽≦)/~
DataTable dataTable =new DataTable();
最後DataReader和DataSet各有所好,都很好用der,就看個人習慣或需求囉٩(˃̶͈̀௰˂̶͈́)و